This invention relates generally to improvements in digital versatile disc systems and, more particularly, to an improved system for searching program chain objects in DVD content.
Digital versatile discs (DVDs) are information storage devices used for storing prerecorded audio information, movies and computer software. The storage and playback mechanism used in DVDs closely resembles the mechanism used in compact discs (CDs) and DVD players and software use the same laser technology as CD players. Briefly, both DVDs and CDs store information as a pattern of pits formed in a metallic substrate. The pit patterns form digital words and the digital words are read by shining a laser beam on the disc surface and detecting the reflected beam. However, the information storage capacity of a typical DVD is much higher than a CD. Presently available DVDs have a variety of capacities that depend on the technology used to manufacture the discs. Single-layer technologies can be either single or double-sided with capacities of 4.7 gigabytes and 9.4 gigabytes, respectively. Dual layer technologies are available which use single or double-sided capacities that hold approximately 8.5 gigabytes per side. This high information storage capacity makes DVDs suitable for storing not only audio information, but also video information and large amounts of computer data as well.
DVD players have many CD player features, such as the ability to play selections in any order desired and the ability to read information from any point on the disc. However, DVDs can store information in several formats. For example, DVDs that are used to store video information (hereinafter called DVD-VIDEO discs) may use various known information compression algorithms, such as MPEG-2 for video compression/decompression. A DVD may also include high fidelity sound as well. In addition, a DVD may also store uncompressed linear Pulse Code Modulated data streams, which have sample rates between 48-96 kHertz and are sampled at 16 or 24 bits. Still other DVD versions (hereinafter called DVD-ROM discs) can store digital data for computer use, and the data may also be compressed on these discs.
Although DVD-ROM and DVD-VIDEO discs share compression algorithms, the data format on DVD-VIDEO discs is significantly different than the data format found on DVD-ROM discs. One important difference is that the data content on DVD-ROM is platform-specific, while DVD-VIDEO discs operate with a platform independent navigation engine for playing interactive movies. This navigation engine requires that the files on the DVD_VIDEO disc be referenced in predetermined directory structure.
In particular, each DVD-VIDEO disc contains a main directory denoted as a VIDEO_TS directory, which contains two types of files distinguished with the file extensions .IFO and .VOB. During playback, these files are sorted by a DVD video player to form video xe2x80x9ctitlexe2x80x9d sets, which are groupings of all files necessary to play a particular DVD video xe2x80x9ctitlexe2x80x9d, for example, a movie. Each video title set is composed of one .IFO file and one or more .VOB files.
A file with the .VOB extension contains the actual multimedia data and is called a video object set. The location and format of the multimedia data stored in the video object set is defined by the associated .IFO file. In particular, .IFO files contain navigational data structures and a processor-independent interpreted language which specifies how the data structures are arranged.
The data structures themselves are composed of various objects called xe2x80x9cprogram chain objectsxe2x80x9d, xe2x80x9cprogram objectsxe2x80x9d, and xe2x80x9ccell objectsxe2x80x9d. Program chain objects link related program objects (or particular scenes) within a title and their data structures govern the playback of the program objects. For example, a simple title may contain only one program chain. However, complex titles may contain two or more program chains to allow random access to a variety of programs. The multiple program chain title can play programs linearly, randomly or in a xe2x80x9cshufflexe2x80x9d mode. Program chains allow a particular program sequence to be changed during playback. Thus, it is possible to change the program contact based on stored information. This type of operation is used in implementing xe2x80x9cparental controlxe2x80x9d levels in which information content that parents might find inappropriate (such as extremely violent or sexual material) can be removed during playback and other material substituted without requiring several separate and complete programs.
The parental control levels are achieved by placing sensitive information in a parental block. A parental block contains two or more program chain objects and each object controls material associated with a particular parental control setting. Only one program chain (PGC) object in a parental block may be shown to the user. It is desirable to perform parental control searching within DVD content. Generally, it is desirable to perform searching within a program block, such as a parental block, containing two or more program chain objects. In order to perform PGC searching within a particular block there are two known approaches within DVD systems. The first is to perform a linear search within a linked-list for all PGC objects. The second method is to perform a search within an array for all PGC objects.
FIG. 1 is a conceptual drawing of parental block 10 that has a plurality of program chain objects 12, 14, and 16. The first PGC object 12 in parental block 10 can be directly referenced. Unfortunately, due to the specification for DVD players, the remaining PGC objects 14 and 16, which in this case represent two through n number of PGC objects, can only be accessed based on the current parental level setting. Further, no random accessing is possible to select a desired PGC object within a particular parental block. Each PGC object within the parental block must be checked to determine the one associated with the current parental level setting. Depending upon this setting there may be up to sixteen excess checks per block to determine the correct PGC object. Since there are no guarantees that each parental block contains a PGC object associated with a parental setting, and that there may be potentially thousands of parental blocks in a title, the magnitude of the wasted checks is significant during playback. Furthermore, there is no simple solution to determine parental block size. Once the appropriate PGC within a parental block has commenced playing, there is no method that allows the system to jump out of a particular parental block and play the following PGC, even if that PGC is within the same parental block.
The linked list method for searching for specific PGC objects must sort through all the PGCs on the DVD content. Each PGC object within a parental block is then flagged as being part of a block. This supports playback of the appropriate PGC objects for the current parental level setting. Unfortunately, the use of a linked list does not permit direct random access to a specific PGC number. Furthermore, the linked list approach suffers from the inherent limitations of the parental management block structure in lacking a method to sort through other objects via an identifying number.
The use of an array for searching all PGC objects is even more time consuming than the linked list approach. The array search method can execute a much larger number of instructions than the linked-list method in that the array requires as many as:
(N number of PGC objectsxe2x80x94A PGC number)*(number of parental blocks*size of each block),
where N is the total number of PGC objects and A is the desired number of PGC objects. The linked list method requires only the total number of PGC objects less than the desired PGC number of instructions to be executed.
Accordingly, what is needed is an improved method and system for searching for PGC objects within defined blocks stored on DVD content. Furthermore, what is needed is a method and system for notating or marking PGC objects to improve search operations over the prior methods that failed to mark PGC objects.
In accordance with the present invention, a digital versatile disc (DVD) playback apparatus is disclosed for searching program chain (PGC) objects within a DVD content source. The DVD playback apparatus includes a DVD reader for reading a DVD content source and a user input device for receiving user commands. The DVD content source comprises a plurality of PGC objects and the DVD playback apparatus is able to search among the PGC objects using the following mechanisms. A PGC object pointer allocating mechanism is provided that is configured to allocate a unique pointer to each PGC object on the DVD content source. Once the PGC object pointers are allocated, a PGC search mechanism, which is coupled to the PGC pointer allocating mechanism, performs searches for a requested PGC object using a pointer assigned to the desired PGC object in response to a user search request command. Selected of the PGC objects are allocated to at least one data block while the remaining are considered to be non-block objects. The PGC pointers are place within a linear array for searching.
In accordance with another aspect of the invention, the PGC object searching mechanism and pointer allocation mechanisms allow a user to search through parental control ratings matching specific PGC objects for playback of a given title on the DVD content source. The pointer mechanism and search mechanism allow the DVD player to quickly locate the desired PGC objects associated with the selected rating. Typically, the ratings for a given title are stored within a block.
In accordance with another aspect of the present invention, a method for searching DVD program chain objects stored on a DVD content source is also disclosed. The method comprises the steps of allocating a unique pointer to each PGC object, placing the unique pointers within a linear pointer array, and searching the linear pointer array for the given PGC object in response to a search request. The method may also place selected ones of the PGC objects in a desired data block for search purposes. In one contemplated embodiment, the PGC objects provide a plurality of parental level viewing options for a given title. These parental level viewing options conform to a rating system consisting of G, PG, PG13, R, NC17, and NR ratings. A computer program product embodying the method steps is also disclosed. The computer program product enables a computer to be uniquely programmed to carry out the method steps using program codes stored on the computer program product.